A chart or graph is described in Wikipedia as a type of information graphic or graphic organizer that represents tabular numeric data and/or functions. Charts are often used in an attempt to make it easier to understand large quantities of data and the relationship between different parts of the data. Charts can usually be read more quickly than the raw data that they come from. They are used in a wide variety of fields, and can be created by hand (e.g., on graph paper) or by computers using various charting applications.
Traditional charts use well established and often poorly implemented ways of representing data. Many tools exist to help the user construct very sophisticated representations of data but that sophistication typically results in less meaningful charts.
It is known to use charting wizards such as those that are available in Microsoft® Excel™ and various other systems such as those provided by, for example, IBM.® In addition there are multiple Business Intelligence (BI) tools available to users to enable users to analyze data in an attempt to create meaningful feedback. However, as the amount of data increases, so does the complexity of the visual representations created by the analysis of the data. These complex representations can end up swamping parts of the visual representation that are most useful and relevant to an end user.
One known method of visualizing data is a heatmap. A heatmap identifies the data values of individual data points by allocating a specific color based on the data value. For example, red may indicate that the data value is high, and blue may indicate that the data value is low. The color spectrum in between red and blue may then be used to indicate the intermediate values for relevant data points. The heatmap graphic is particularly useful for showing the position and intensity of certain data values with respect to other data values and within a defined environment, such as a geographical area or temporal period.
It is known to create heatmaps using an inverse distance weighted (IDW) formula, such as a bell shaped curve. However, these methods are extremely complex and can cause artifacts, which can be particularly problematic. It is also known to use a cubic spline method to create a heatmap, but this method is particularly processor (CPU) intensive.
Heatmaps produced by the above described methods, such as that shown in FIG. 1, can produce quite garish and intense maps that tend to confuse the eye of the reader. For example, the heatmap of FIG. 1 is produced by rendering circles around a specific data point, where the color and diameter of the circle is based on a variable associated with the data point. Smaller diameter circles are used to represent smaller data values and larger diameter circles are used to represent larger data values. Further, the larger the circle (or data value) the “hotter” the color used to represent the circle. For example, the largest values may be rendered using large circles colored red, whereas the smallest values may be rendered using small circles colored blue. At points where the circles overlap, the circle associated with the largest data value has priority over the smaller circles and the color for the larger circle is shown in the overlap region.
One problem associated with this method of rendering the overlapped region is that only the values of data points representing the largest values appear in the overlap regions and an accurate representation of the overlap regions is not provided. For example, two data points that are close to each other that represent a maximum value will be rendered using the same color as three or four (or more) data points that are close to each other that represent the same maximum value. A further problem occurs when data points representing smaller values are positioned next to or close to data points representing larger values as the rendered larger value data points obscure the rendered smaller value data points. This results in loss of information being conveyed to the user because minimal data values may be a very important part of the data analysis.
Prior known methods typically use spread functions, such as bell shaped curves, to calculate interpolation values for each point on a heatmap. These spread functions tail off over a long distance (graphically), requiring each point to take into account all other data points, even if positioned a large graphical distance away from the data point being calculated. Therefore, high levels of computing are required to calculate all values on the heatmap as all points influence all other points.